😗 실습 사이트
1. 변수1. 선언1.2 변수 타입2. 함수2.1 함수 선언2.2 변수 기본 값 선언3. 컬렉션3.1 Array (배열)3.2 List3.3 Set3.4 Map4. 조건문과 반복문4.1 조건문4.2 반복문 for과 while
1. 변수
1. 선언
다음과 같이 변경 가능한 변수는
var
변경 불가능한 변수는 val
로 선언합니다.코틀린의 모든 타입은 객체임으로 변수에 null을 대입할 수 있습니다. 대신
선언할 때 null을 대입할 수 있는 변수인지, null을 대입할 수 없는 변수인지
?로 구분하여
명확하게 선언하여야 합니다초기화를 해야 하는 변수 vs 하지 않아도 되는 변수
🔎 해야 하는 변수
최상위에 선언한 변수(전역 변수)
클래스의 멤버 변수
- 생성자를 통해 선언 시 바로 초기화가 된다면 반드시 값을 명시할 필요는 없습니다.
🔎 하지 않아도 되는 변수
함수 내부에 선언한 변수
초기화를 미룬 변수
초기화를 미룬 변수?
🤪 lateinit
lateinit
으로 선언한 변수는 초기 값을 할당하지 않아도 됩니다. 다만!- var 키워드로 선언한 변수이거나
int, Long, Short, Double, Float, Boolean, Byte
타입에는사용할 수 없습니다.
🤪 lazy
변수 뒤에 붙는 접미사로 변수 선언 뒤에
by lazy { 내용 } 형식
으로 선언되며 변수가 최초로 이용되는 순간 중괄호로 묶은 부분이 자동으로 실행
되어 그 결괏값이 변수의 초기값으로 할당됩니다.초기화를 하지 않아도 되는 것들에 대한 예시입니다.
1.2 변수 타입
코틀린의 모든 변수는
객체
입니다. 이는 즉 변수에 메서드가 존재하며, Int 타입의 변수에 null을 대입할 수도 있습니다. (?를 붙인 경우)기초 타입 객체
기초 데이터형을 의미하며, 정수를 표현하는
Int, Short, Long
, 실수를 표현하는 Double, Float
, 이진수를 표현하는 Byte
, 참/거짓을 표현하는 Boolean
타입이 존재합니다.😎 타입 선언은 다음과 같습니다.
문자와 문자열
Char
은 문자를 표현하는 타입이며 '
를 이용하여 선언합니다.String
은 문자’열’ 을 표현하는 타입이며 ""
혹은 """
로 감싸서 표현합니다.문자열 템플릿
의 경우 ${변수}
형태로 문자열 내에서 사용됩니다.😎 예시 입니다.
모든 타입이 가능한 타입 (Any)
Any
는 코틀린에서 최상위 클래스
입니다. 따라서 Any타입으로 선언한 변수에는 모든 타입의 데이터를 할당할 수 있습니다.반환(return)이 없는 함수
Unit
타입으로 선언한 변수에는 Unit 객체만 대입할 수 있습니다. 보통 함수에서 반환문이 없음을 명시적으로 나타낼 때 사용
됩니다함수를 선언할 때 반환 타입을 생략하면 자동으로 Unit이 적용됩니다.
null이나 예외를 반환하는 함수 (Nothing)
Nothing도 Unit과 마찬가지로 의미 있는 데이터가 아니라 특수한 상황을 표현합니다.
Nothing으로 선언한 변수에는 null만 대입할 수 있습니다.
2. 함수
2.1 함수 선언
코틀린에서 함수를 선언할 때는
fun
키워드를 이용합니다.선언 방식은 다음과 같습니다.
2.2 변수 기본 값 선언
매개변수에 값이 없다면 기본 값을 넣어줄 수 있습니다.
또한 해당 함수를 선언할 때, 매개변수를 지정하여 호출할 수도 있습니다.
3. 컬렉션
3.1 Array (배열)
코틀린의 배열은 Array 클래스로 표현합니다. 처음 생성할 때
첫 번째 인자는 배열의 크기, 두번째 인자는 초깃값을 지정하는 함수
입니다.선언
데이터 접근
3.2 List
순서가 있는 데이터의 집합으로
데이터의 중복을 허용합니다.
배열과 List의 차이는
배열(Array)은 길이를 변경할 수 없지만 List는 선언시 MutableList로 선언하면 길이를 변동시킬 수 있습니다.
가변 클래스 / 불변 클래스
Collection 타입의 클래스는 가변 클래스와 불변 클래스로 나뉘는데,
불변 클래스는 초기에 데이터를 대입하면 더 이상 변경할 수 없는 타입
입니다. 하지만 가변 클래스는 초깃값을 대입한 이후에도 데이터를 추가하거나 변경
할 수 있습니다. 보통 변하기 쉬운이라는 뜻인 mutable
을 사용합니다.🔎 List
불변
: listOf()
가변
: mutableListOf()
➡️ 예시
3.3 Set
순서가 없으며
데이터의 중복을 허용하지 않습니다.
🔎 Set
불변
:setOf()<객체 타입>
가변
:mutableSetOf()<객체 타입>
➡️ 예시
3.4 Map
키와 값으로 이루어진 데이터 집합으로, 순서가 없으며
키의 중복은 허용하지 않습니다.
key와 value를 넣을때는
“Pair(’key’, ‘value’)"
처럼 객체로 표현하거나 "key" to "value"
형식을 사용합니다.- 두개를 같이 써도 상관 없습니다.
🔎 Map
불변
: mapOf()
가변
: mutableMapOf()
➡️ 예시
4. 조건문과 반복문
4.1 조건문
기본
다른 언어의 조건문과 동일합니다.
표현식을 이용한 사용
value가 0 이상
이라면 data1에true가 저장
,아니면 false
가 저장됩니다.
조건문 when
when 키워드는 소괄호 안에 넣은 데이터가 조건이 되고, 이 값에 따라 각 구문을 실행합니다
각 구문을 다양하게 설정해 줄 수 있습니다.
- 상단부터 맞는 부분에서 멈춰 실행합니다.
- data 부분을 생략하고 조건 식 자체를 선언해 줄 수 있습니다.
표현식으로도 사용이 가능합니다.
- else는 반드시 들어가야 합니다.
4.2 반복문 for과 while
for문
파이선과 자바를 섞어놓은듯함
while 문